package com.zhq.tool.util;

import java.io.UnsupportedEncodingException;
import java.util.regex.Pattern;

/**
 * Created with IntelliJ IDEA.
 *
 * @Desc String 转换工具类
 * @Author niuzf
 * @Date: 2016年01月11日 16:20
 */
public class StringUtils {

    /**
     * 是否是数值
     *
     * @param str
     * @return
     */
    public static boolean isNumeric(String str) {
    	if(isEmpty(str)){
    		return false;
    	}
        Pattern pattern = Pattern.compile("[0-9]*");
        return pattern.matcher(str).matches();
    }


    /**
     * 判断传入的字符串如果为null则返回传入的默认值,否则返回其本身
     *
     * @param string 待判断字符串
     * @param instant 为空返回的默认值
     * @return String
     */
    public static String convertNull(String string, String instant) {
        return isEmpty(string) ? instant : string;
    }

    /**
     * 判断传入的字符串如果为null则返回"",否则返回其本身
     *
     * @param string 待判断字符串
     * @return String
     */
    public static String convertNull(String string) {
        return convertNull(string, "");
    }

    /**
     * 判断传入的参数是否为空
     * @param str
     * @return
     */
    public static boolean isEmpty(String str) {
        if (str == null || "".equals(str.trim()) || "null".equals(str) || "undefined".equals(str)) {
            return true;
        }
        return false;
    }

    /**
     * 判断对象是否为空
     *
     * @param obj Object
     * @return boolean 空返回true,非空返回false
     */
    public static boolean isNull(Object obj) {
    	return null == obj || String.valueOf(obj).trim().length() == 0;
//        return (null == obj) ? true : false;
    }

	/**
	 * 截取字符串长度
	 * @param str
	 * @param length
	 * @return
	 */
	public static String limitLenth(String str, int length) {
		if (!isEmpty(str)) {
			byte[] b;
			try {
				b = str.getBytes("UTF-8");
				int res = b.length;
				if (res > length) {
					return new String(b, 0, length - 1);
				} else {
					return str;
				}
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		return "";
	}
	
	 /**
     * 格式化字符串(12,23,234 to '12','23','234')
     * 
     * @param s
     * @return
     */
    public static String formatString(String s)
    {
        return formatString(s, ",");
    }
	
	/**
     * 根据分隔符将字符串分开，并加上"'"输出(12,23,234 to '12','23','234')
     * 
     * @param s
     * @param spiltter
     *            分隔符
     * @return
     */
    public static String formatString(String s, String spiltter)
    {
        if (StringUtils.isNull(s))
            return "";
        StringBuffer result = new StringBuffer();
        String[] temp = s.split(spiltter);
        for (String str : temp)
        {
            if (str.trim().length() > 0)
                result.append(spiltter).append("'").append(str).append("'");
        }
        
        return result.length() > 0 ? result.substring(1) : result.toString();
    }

}
